/*
 * HttpGet.h
 *
 */

#ifndef HTTPGET_H_
#define HTTPGET_H_

#include "HttpRequest.h"

class HttpGet : public HttpRequest {
	public:
		/**
		 * Crea una instancia asociada al uri y protocol version de un request.
		 */
		HttpGet(const std::string& uri, const std::string& protocVer);

		virtual ~HttpGet();

		/**
		 * Devuelve falso siempre porque get no tiene body
		 */
		bool hasBody() const;

		/**
		 * En caso de ejecutarse arroja una excepción porque get no tiene body.
		 * @throw MesssageException Siempre
		 */
		HttpBody& getBody() const;

		/**
		 * En caso de ejecutarse arroja una excepción porque get no puede
		 * tener body.
		 * @throw MesssageException Siempre
		 */
		void setBody(HttpBody* body);

		/**
		 * Devuelve el nombre del método (GET)
		 */
		const std::string& getMethod() const;
};

#endif /* HTTPGET_H_ */
